// import { routerRedux } from 'dva/router';
import { message } from 'antd';
import { getCPData } from '@/services/evaluate';
import initChart from '@/utils/initChart';
import { getFinanceBarOption } from '@/utils/echarts-figures.js';

export default {
  namespace: 'comprehensive',

  state: {
    desc_info: '', // 指标解释
    complex_score: '00.00', // 综合分数
    current_score: '00.00', // 本期分数
    industry_rank: '00/00', // 行业排名
  },

  effects: {
    *getCP({ payload }, { call, put }) {
      try {
        const res = yield call(getCPData, payload);

        if (+res.code === 0) {
          // 行业均值
          let industry = res.data.charts.filter(c => {
            return c.name === '行业均值';
          });
          industry = industry.length > 0 ? industry[0].values : [];
          // 本期评分
          let own = res.data.charts.filter(c => {
            return c.name === '无叠加'; // 本期评分
          });
          own = own.length > 0 ? own[0].values : [];
          // 绘制综合评价-传统财务得分
          const options = getFinanceBarOption(res.data.x, industry, own);

          console.log('生成的选项：', options);
          initChart(options, payload.chartId);

          yield put({
            type: 'setCPData',
            payload: {
              desc_info:
                '综合评价指标解释：该模块展示了传统的多维度经典财务分析框架。模块最终展示的财务得分是在考量了目标公司“偿债能力”、“运营能力”、“现金流健康状况”、“盈利能力”和“成长能力”五大维度状况后综合计算产生的。该财务评分系统针对上述每一维度分别采纳了5～10个不同财务指标进行赋权打分。财务指标既涵盖了ROE、已获利息倍数等这样经典的财务指标，也加入了简答数据研究团队经开发检验的自创财务指标。综合评分将基于全市场比对产生。得分越高，表明目标公司在上述六大维度中综合表现理想。得分越低，表明目标公司在上述六大维度中整体表现较差，原因可能是各维度均有小幅恶化，亦可能是某一维度出现急剧恶化。', //指标解释
              complex_score: res.data.data.scores.overallScore, //综合分数
              current_score: res.data.data.scores.thisScore, //本期分数
              industry_rank: res.data.data.scores.rank, //行业排名
            },
          });
        } else {
          message.error(res.msg);
        }
      } catch (e) {
        message.error('获取数据失败，请稍后再试');
        // yield put({type: "USER_FETCH_FAILED", message: e.message});
      }
    },
  },
  reducers: {
    setCPData(state, { payload }) {
      const newState = {
        ...state,
        ...payload,
      };
      return newState;
    },
  },
};
